#%RAML 1.0 Library

types:
  LeaderInfo:
    type: object
    properties:
      leader: string

  MarathonConfig:
    type: object
    properties:
      access_control_allow_origin?:
        type: string[]
      checkpoint?:
        type: boolean
      decline_offer_duration?:
        type: number
        format: int64
      default_network_name?:
        type: string
      env_vars_prefix?:
        type: string
      executor?:
        type: string
      failover_timeout?:
        type: number
        format: int64
      features:
        type: string[]
      framework_name?:
        type: string
      ha?:
        type: boolean
      hostname?:
        type: string
      launch_token?:
        type: number
        format: int32
      launch_token_refresh_interval?:
        type: number
        format: int64
      leader_proxy_connection_timeout_ms?:
        type: number
        format: int32
      leader_proxy_read_timeout_ms?:
        type: number
        format: int32
      local_port_max?:
        type: number
        format: int32
      local_port_min?:
        type: number
        format: int32
      master?:
        type: string
      max_instances_per_offer?:
        type: number
        format: int32
      mesos_bridge_name?:
        type: string
      mesos_heartbeat_failure_threshold?:
        type: number
        format: int32
      mesos_heartbeat_interval?:
        type: number
        format: int64
      mesos_leader_ui_url?:
        type: string
      mesos_role?:
        type: string
      mesos_user?:
        type: string
      min_revive_offers_interval?:
        type: number
        format: int64
      offer_matching_timeout?:
        type: number
        format: int64
      on_elected_prepare_timeout?:
        type: number
        format: int64
      reconciliation_initial_delay?:
        type: number
        format: int64
      reconciliation_interval?:
        type: number
        format: int64
      scale_apps_initial_delay?:
        type: number
        format: int64
      scale_apps_interval?:
        type: number
        format: int64
      store_cache?:
        type: boolean
      task_launch_confirm_timeout?:
        type: number
        format: int64
      task_launch_timeout?:
        type: number
        format: int64
      task_lost_expunge_initial_delay:
        type: number
        format: int64
      task_lost_expunge_interval:
        type: number
        format: int64
      task_reservation_timeout?:
        type: number
        format: int64
      webui_url?:
        type: string

  ZooKeeperConfig:
    type: object
    properties:
      zk:
        type: string
      zk_compression?:
        type: boolean
      zk_compression_threshold?:
        type: number
        format: int64
      zk_connection_timeout:
        type: number
        format: int64
      zk_max_node_size?:
        type: number
        format: int64
      zk_max_versions:
        type: number
        format: int32
      zk_session_timeout:
        type: number
        format: int64
      zk_timeout:
        type: number
        format: int64

  HttpConfig:
    type: object
    properties:
      http_port:
        type: number
        format: int32
        minimum: 0
      https_port:
        type: number
        format: int32
        minimum: 0

  MarathonInfo:
    type: object
    properties:
      name:
        type: string
      version:
        type: string
      buildref:
        type: string
      elected:
        type: boolean
      leader?:
        type: string
      frameworkId?:
        type: string
      marathon_config:
        type: MarathonConfig
      zookeeper_config:
        type: ZooKeeperConfig
      http_config:
        type: HttpConfig
